package com.rainman.simpleredis.demo.controller;

import com.rainman.simpleredis.core.SimpleRedis;
import com.rainman.simpleredis.core.process_flow.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


/**
 * 测试流式任务
 *
 */
@RequestMapping("/pf")
@RestController
public class DemoProcessFlowController {

    @Autowired
    SimpleRedis simpleRedis;

    @Autowired
    StringRedisTemplate stringRedisTemplate;


    @RequestMapping("/t")
    public String t(Long dur){

        //提交一个任务流程为 下单->座位系统锁座->扣减积分->支付系统下单  等待结果，最长等待时间为dur

        long l = System.currentTimeMillis();

        for(int i=0;i<1;i++){

            ProcessFlowBuilder processFlowBuilder = ProcessFlowBuilder.newInstance(l+i + "",  dur)
                    .addWorker("本系统订单", l+i+"")
                    .addWorker("座位系统", "#{0}")//第0个执行产生的结果
                    .addWorker("积分系统", "#{0}","#{1}")//第一个参数为：第0个执行产生的结果 。第二个参数为：第1个执行产生的结果 。
                    .addWorker("三方支付系统", "#{0}");

            simpleRedis.addProcessFlowNoReturn(processFlowBuilder);

        }

        return "";
    }


}
